package br.senai.sc.controller.business;

import java.math.BigDecimal;

import br.senai.sc.controller.exception.BusinessException;

/**
 * Contém os cálculos de IQA para o parâmetro Diferença temperatura.
 * 
 * @author Tiago
 */
public final class CalculoDiferencaTemperaturaBusiness {

	/**
	 * Peso fixo utilizado para o cálculo da qualidade do DBO (qi^w)
	 */
	private static final double PESO = 0.10;

	/**
	 * O IQA da diferença de temperatura.
	 */
	public static final int IQA_TEMPERATURA = 94;

	private CalculoDiferencaTemperaturaBusiness() {

	}

	/**
	 * O IQA da diferença de temperatura sempre é 94.
	 * 
	 * @return
	 */
	public static BigDecimal calculaIQA() {
		return new BigDecimal(IQA_TEMPERATURA);
	}

	/**
	 * Calcula a média de qualidade (qi^w).
	 * 
	 * @param valor
	 * @return
	 * @throws BusinessException
	 *             Lançada caso o valor informado seja inválido.
	 */
	protected static BigDecimal mediaQualidade(BigDecimal valor)
			throws BusinessException {
		return new BigDecimal(Math.pow(calculaIQA().doubleValue(), PESO));
	}

}